#题目1：建立英文变量、中文变量、隐藏变量
a <- 23
测试 <- 19
.b <- 100

#题目2：使用print 和 cat输出中文、英文字符
print("R语言课程！")
print("this is R course")
cat("中南大学")
cat("do your best today")

# 测试print 和 cat函数
x <- print("this is R course")
x
y <- cat("hello world")
y

print("this is R course \n")  #转义符\n无效
cat("hello world\n") #转义符\n有效


#题目3.1： 条件语句练习:使用for语句计算num中大于10

num <- sample(1:50, 10, replace = TRUE)  #replace = FLASE 则产生的元素不重复
count = 0   #计数大于10的元素个数
for(i in 1:length(num)){
  if(num[i] > 10){
    count <- count + 1
  }
}
print(num)  
print(count)

# 题目3.2：使用while语句计算num小于40的个数


num <- sample(1:50, 10, replace = TRUE)
count = 0
j = 0
while(j < lenth(num)){
  if(num[j + 1] < 40){
    count <- count + 1
  }
  j <- j + 1   #改变j的大小，以便结束while循环
}
print(num)
print(count)

#题目3.3：使用条件语句对Num中元素进行从大到小的排序

#冒泡排序
num <- sample(1:50, 10, replace = TRUE)
#输出原始的num
print(num)
#使用2个for循环遍历，O(n2)
for(i in 1:(length(num) - 1)){
  for(j in 1:((length(num) - i))){
    if(num[j] < num[j + 1]){
      tem <- num[j]
      num[j] <- num[j + 1]
      num[j + 1] <- tem
    }
  }
}
#输出排序后的向量
print(num)




#选择排序
num <- sample(1:50, 10, replace = TRUE)
#输出原始的num
print(num)
for(i in 1:(length(num) - 1)){
  index <- i  #记录最大元素的小标，以便后续元素交换
  for(j in (i+1):length(num)){
    if(num[j] > num[index]){
      index <- j
    }
  }
  tem <- num[i]
  num[i] <- num[index]
  num[index] <- tem
}
#输出排序后的向量
print(num)






